Systems and methods for picture quality monitoring

ABSTRACT

A receiving device performs an action that results in a corrective measure being taken to address a picture quality issue detected in real time in the frames currently being displayed on a television or other device. The receiving device or a remote system compares indications of video frames currently being displayed to stored video frames for that program to detect macroblocking or a frozen video frame. The macroblocking or a frozen video frame may also or instead be detected by image analysis of the frames currently being displayed. If macroblocking or a frozen video frame is detected in the frames currently being displayed, the set-top box may switch to an alternative video source, change to a standard definition channel broadcasting the same video program or perform other corrective actions.

TECHNICAL FIELD

The technical field relates to media content, and particularly picturequality monitoring of media content.

BRIEF SUMMARY

In one embodiment, a set-top box may perform an action that results in acorrective measure being taken to address a detected picture qualityissue in the frames currently being displayed on a television or otherdevice. If macroblocking or a frozen video frame is detected in theframes currently being displayed, the set-top box may take any number orcombination of various corrective actions. For example, the set-top boxmay switch to an alternative video source; change to a standarddefinition channel broadcasting the same video program; switch tosending or receiving the video program in standard definition instead ofhigh definition; restart the decoder or decoding process; and/or cause apop-up message or other notification to be displayed notifying the userof on-demand or other alternative video sources available for that sameprogram.

The set-top box may perform this detection of picture quality issues ora remote system in communication with the set-top box, such as a contentserver, may perform this detection. This detection may be based onindications received from the set-top box of which video program andwhich frames of the video program are currently being displayed. Theseindications also include the corresponding video frame data or samplesof the video frame data currently being displayed. The remote systemcompares these indications of video frames currently being displayed tostored video frames for that program on the remote system. Based on thiscomparison, metadata regarding picture quality of the video frames isthen communicated back to the set-top box such that the set-top box maythen perform an action based on the received metadata that results in acorrective measure being taken to address the picture quality.Macroblocking or a frozen video frame may also or instead be detected byimage analysis of the frames currently being displayed to recognizeproperties of such picture quality issues. All or some of thesefunctions may be performed by the set-top box internally.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

The components in the drawings are not necessarily to scale relative toeach other. Like reference numerals designate corresponding partsthroughout the several views.

FIG. 1 is a block diagram illustrating an example content distributionenvironment in which embodiments of picture quality monitoring may beimplemented, according to one example embodiment.

FIG. 2 is a block diagram illustrating elements of an example receivingdevice used in picture quality monitoring, according to one exampleembodiment.

FIG. 3 is a flow diagram of a method of picture quality monitoring,according to one example embodiment.

FIG. 4 is a flow diagram of a method of detecting a frozen frame picturequality issue in the method shown in the flow diagram of FIG. 3,according to one example embodiment.

FIG. 5 is a table illustrating example corrective measures to beperformed based on various picture quality issues, according to oneexample embodiment.

FIG. 6 is a flow diagram of a method of picture quality monitoring basedon received metadata regarding picture quality, according to one exampleembodiment.

FIG. 7 is a flow diagram of a method of picture quality monitoringincluding sending metadata regarding picture quality, according to oneexample embodiment.

DETAILED DESCRIPTION

FIG. 1 is an overview block diagram illustrating an example contentdistribution environment in which embodiments of picture qualitymonitoring may be implemented, according to one example embodiment.Shown in FIG. 1 is a receiving device 118 in operable communication witha presentation device 120. The receiving device 118 may perform anaction that results in a corrective measure being taken to address adetected picture quality issue in the frames currently being displayedon the presentation device 120.

For example, macroblocking often occurs when compressed digital video isdecoded and displayed. Macroblocking is a video artifact in whichobjects or areas of a video image displayed on the presentation device120 appear to be made up of small squares, rather than proper detail andsmooth edges. The blocks may appear throughout the image, or just inportions of the image. Macroblocking may be caused by issues that arerelated to one or more of the following factors: video compression, datatransfer speed, signal interruption, and video processing performance.

Also, another picture quality issue that may occur is that the displayeddigital video may freeze on a single frame of the digital video suchthat the same image is displayed on the presentation device 120 duringdisplaying of the video program on the presentation device 120. In otherwords, the program appears to be “stuck” on the same image. This canindicate a problem in either the video import or encoding processes. Ifit's a streaming or broadcast video, there could be bandwidth problemsor connection errors.

In one embodiment, if macroblocking or a frozen video frame is detectedin the frames currently being displayed on the presentation device 120,the receiving device 118 or a remote system in communication with thereceiving device 118, such as content provider 104, content server 106,alternate video source server 122 or information server 138, may takeany number or combination of various corrective actions. For example,the receiving device 118 or a remote system may switch to an alternativevideo source; change to a standard definition channel broadcasting thesame video program; switch to sending or receiving the video program instandard definition instead of high definition; restart the decoder ordecoding process of the receiving device 118; request the video framesbe re-sent to the receiving device 118; alter the decoding process atthe receiving device 118; adjust video quality to account for bandwidthavailability and/or connection speed; perform adaptive bitratestreaming; adjust adaptive bitrate streaming settings; adjust bitrate toaccount for bandwidth availability and/or connection speed; and/or causea pop-up message or other notification to be displayed on thepresentation device 120 notifying the user of on-demand or otheralternative video sources available for that same program.

The receiving device 118 may perform this detection of picture qualityissues or such detection may be performed by a remote system incommunication with the receiving device 118, such as content provider104, content server 106, alternate video source server 122 orinformation server 138. This detection may be based on indicationsreceived from the receiving device 118 of which video program and whichframes of the video program are currently being displayed on thepresentation device 120. These indications also include thecorresponding video frame data or samples of the video frame datacurrently being displayed. The remote system will then compare theseindications of video frames currently being displayed on thepresentation device 120 to stored video frames for that program on theremote system. Based on this comparison, metadata regarding picturequality of the video frames is then communicated back to the receivingdevice 118 such that the receiving device 118 may then perform an actionbased on the received metadata that results in a corrective measurebeing taken to address the picture quality.

In performing video freeze detection, the receiving device 118 or remotesystem in communication with the receiving device 118, such as contentprovider 104, content server 106, alternate video source server 122 orinformation server 138, compares the current frame with the previousone. If the two frames are the same, then the process repeats until aspecified number of simultaneous compares show identical frames. Thisprocess also distinguishes between user-initiated pause and true videofreezes.

For macroblocking detection, the receiving device 118 or remote systemin communication with the receiving device 118, such as content provider104, content server 106, alternate video source server 122 orinformation server 138, uses edge and corner detection techniques todetect potential macroblocks. Note that macroblocks are squares ofincorrect or missing video so the process includes searching for imageswith multiple square objects and searching for perpendicular edges ofequal length. In some embodiments, the search is further refined bysearching for square objects with single or very similar color values(green squares, for example). The search finds multiple cases of squareobjects which are identical in shape to distinguish true macroblockingfrom normal video content with square objects.

As explained above, the receiving device 118 or a remote system incommunication with the receiving device 118, may perform an action thatresults in a corrective measure being taken to address a detectedpicture quality issue in the frames currently being displayed on thepresentation device 120. This may be a user-selectable option andmodified based on user selectable options. Selection of such options maybe provided to the user via a menu or other graphical user interfaceelement displayed on the presentation device 120 and/or a display panelof the receiving device 118. Such user options may also be provided viauser interface elements on the remote control device 128. For example,the user may select to turn on or off the capability to detect picturequality issue in the frames currently being displayed on thepresentation device 120; select which action or actions are to performthat result in a corrective measure being taken to address a detectedpicture quality issue; select when and the order in which actions are tobe performed that result in a corrective measure being taken to addressa detected picture quality issue; select for which channel or programsand at which times picture quality detection is to be performed; selectfor which channel or programs and at which times actions are to beperformed that result in a corrective measure being taken to address adetected picture quality issue; select on which devices picture qualitydetection is to be performed; and select on which devices actions are tobe performed to address detected picture quality issues. These optionsmay also be selected and set per user, saved in a user's profile storedon the receiving device 118 or remote system accessible via thereceiving device 118, and/or be part of a master user control systemaccessible via the receiving device 118.

Before providing additional details regarding the operation andconstitution of methods and systems for picture quality monitoring, theexample content distribution environment 102, within which such a systemmay operate, will briefly be described.

In the content distribution environment 102, audio, video, and/or dataservice providers, such as television or streaming media serviceproviders, provide their customers a multitude of video and/or dataprogramming (hereafter, “programming”). Such programming is oftenprovided by use of a receiving device 118 communicatively coupled to apresentation device 120 configured to receive the programming. Theprogramming may include any type of media content, including, but notlimited to: television shows, news, movies, sporting events,advertisements, other video or audio, etc.

The receiving device 118 interconnects to one or more communicationsmedia or sources (such as a cable head-end, satellite antenna, telephonecompany switch, Ethernet portal, off-air antenna, content server, or thelike) that provide the programming. The receiving device 118 commonlyreceives a plurality of programming by way of the communications mediaor sources described in greater detail below. Based upon selection by auser, the receiving device 118 processes and communicates the selectedprogramming to the presentation device 120.

For convenience, examples of a receiving device 118 may include, but arenot limited to, devices such as: a receiver, a television converter, aset-top box, television receiving device, television receiver,television recording device, satellite set-top box, satellite receiver,cable set-top box, cable receiver, media player, a digital videorecorder (DVR), smartphone, mobile device, tablet device, a personalcomputer (PC), and/or television tuner. Accordingly, the receivingdevice 118 may be any suitable converter device or electronic equipmentthat is operable to receive or play back programming. Further, thereceiving device 118 may itself include user interface devices, such asbuttons or switches. In many applications, a remote-control device(“remote”) 128 is operable to control the receiving device 118 and/orthe presentation device 120. The remote 128 typically communicates withthe receiving device 118 using a suitable wireless medium, such asinfrared (“IR”), radio frequency (“RF”), or the like.

Examples of a presentation device 120 may include, but are not limitedto: a television (TV), a personal computer (PC), a television orcomputer monitor, sound system receiver, smartphone, mobile device,tablet device, game system, or the like. A presentation device 120 mayemploy a display, one or more speakers, and/or other output devices tocommunicate video and/or audio content to a user. In manyimplementations, one or more presentation devices 120 reside in or neara customer's premises 116 and are communicatively coupled, directly orindirectly, to the receiving device 118. Further, the receiving device118 and the presentation device 120 may be integrated into a singledevice. Such a single device may have the above-described functionalityof the receiving device 118 and the presentation device 120, or may evenhave additional functionality.

A content provider 104 provides program content, such as televisioncontent, to a distributor, which may have or control equipment such asthe content server 106. Example content providers include televisionstations which provide local or national television programming, specialcontent providers which provide premium-based programming,subscription-based programming or pay-per-view programming.

Program content (i.e., a program including or not includingadvertisements), is communicated to the content server 106 from thecontent provider 104 through suitable communication media, generallyillustrated as communication system 108 for convenience. Communicationsystem 108 may include many different types of communication media, nowknown or later developed. Non-limiting media examples include satellite,telephone systems, the Internet, internets, intranets, cable systems,cellular systems, fiber optic systems, microwave systems, asynchronoustransfer mode (“ATM”) systems, packet-switched systems, frame relaysystems, digital subscriber line (“DSL”) systems and radio frequency(“RF”) systems.

In at least one embodiment, the received program content is converted bythe content server 106 into a suitable signal (a “program signal”) thatis ultimately communicated to the receiving device 118. For example,this program signal may include or represent video data. Otherembodiments of the receiving device 118 may receive programming directlyfrom a content server 106, a content provider 104, alternate videosource server, and/or another information server 138 via satellite,locally broadcast RF signals, cable, fiber optic, Internet media, or thelike.

In addition, information server 138 may provide various forms of contentand/or services to various devices residing in the customer premises116. For example, information server 138 may also provide metadata tothe receiving device 118 regarding picture quality of the video framesvideo that are currently being displayed on the presentation device 120.In other embodiments, the receiving device 118 may generate suchmetadata regarding picture quality of the video frames video that arecurrently being displayed on the presentation device 120.

In the illustrated example, the content provider 104, information server138 and/or alternate video source server 122 may receive informationfrom the receiving device 118. For example, the content provider 104,information server 138 and/or alternate video source server 122 mayreceive indications from the receiving device 118 of which program iscurrently being displayed on the presentation device 120, which videoframes of the program are currently being displayed on the presentationdevice 120 and/or corresponding video frame data or samples of the videoframe data currently being displayed on presentation device 120. Theseindications, for example, may include, but are not limited to, programidentifiers, program title, program title identifiers, frameidentifiers, frame numbers, tags, frame headers, index numbers, temporalsequence number, frame metadata, key-frame identifiers of a currentscene, compressed video data representing the frames currently beingdisplayed, data indicating macroblocks, data indicating a frozen videoframe, etc.

The content provider 104, information server 138, content server 106and/or alternate video source server 122 may also control the receivingdevice 118 by sending commands or metadata associated with picturequality to cause the receiving device 118 to perform an action thatresults in a corrective measure being taken to address a detectedpicture quality issue in the frames currently being displayed on thepresentation device 120. In some embodiments, content provider 104,information server 138, content server 106 and/or alternate video sourceserver 122 could also send commands to the receiving device 118 througha wired medium (e.g., Ethernet) to the receiving device 118.

In one embodiment, the alternate video source server 122 is configuredto select particular content or media content segment (e.g., a program)to be provided to the receiving device 118 as an alternative to what iscurrently being sent and displayed on presentation device 120. Forexample, this may occur in circumstances where the picture qualityissues detected in the video program currently being displayed onpresentation device 120 cannot be recovered from otherwise. This may bebased on video frame indications received by the alternate video sourceserver 122 from the receiving device 118 or in response to a commandreceived by the alternate video source server 122 from the receivingdevice 118 or other remote system. As previously mentioned, the receivedindications from the receiving device 118 may indicate which videoframes of a program are currently being displayed on the presentationdevice 120 and the corresponding video frame data or samples of thevideo frame data currently being displayed.

The above description of the content distribution environment 102, thecustomer premises 116, and the various devices therein, is intended as abroad, non-limiting overview of an example environment in which variousembodiments of picture quality monitoring may be implemented. FIG. 1illustrates just one example of a content distribution environment 102and the various embodiments discussed herein are not limited to suchenvironments. In particular, content distribution environment 102 andthe various devices therein may contain other devices, systems and/ormedia not specifically described herein.

Example embodiments described herein provide applications, tools, datastructures and other support to implement picture quality monitoring.Other embodiments of the described techniques may be used for otherpurposes, including picture quality monitoring for or on other receivingdevices, such as audio and DVD players, digital recorders, computers,peripherals, televisions, mobile devices, telephones, and otherelectronic devices, etc. In the following description, numerous specificdetails are set forth, such as data formats, program sequences,processes, and the like, in order to provide a thorough understanding ofthe described techniques. The embodiments described also can bepracticed without some of the specific details described herein, or withother specific details, such as changes with respect to the ordering ofthe code flow, different code flows, and the like. Thus, the scope ofthe techniques and/or functions described are not limited by theparticular order, selection, or decomposition of steps described withreference to any particular module, component, or routine.

FIG. 2 is a block diagram illustrating elements of an example receivingdevice 118 used in picture quality monitoring, according to one exampleembodiment.

In one embodiment, the receiving device 118 is a set-top box configuredto receive, record and display programming on a presentation device. Inother embodiments, the receiving device 118 is a presentation device,such as a television or mobile device.

Note that one or more general purpose or special purpose computingsystems/devices may be used to operate the receiving device 118; storeinformation regarding the receiving device 118, picture qualitymetadata, corrective action rules, including rules for performingactions based on the picture quality metadata, current video frameindications, and communicate with the content provider 104, contentserver 106, information server 138 and/or alternate video source server122. In addition, the receiving device 118 may comprise one or moredistinct computing systems/devices and may span distributed locations.Furthermore, each block shown may represent one or more such blocks asappropriate to a specific embodiment or may be combined with otherblocks. Also, the image processing unit 222 may be implemented insoftware, hardware, firmware, or in some combination to achieve thecapabilities described herein.

In the embodiment shown, receiving device 118 comprises a computermemory (“memory”) 201, a display 202, one or more Central ProcessingUnits (“CPU”) 203, Input/Output (I/O) devices 204 (e.g., keyboard,mouse, RF or infrared receiver, light emitting diode (LED) panel,cathode ray tube (CRT) or liquid crystal display (LCD), USB ports, othercommunication ports, and the like), other computer-readable media 205,and network connections 206. The image processing unit 222 is shownresiding in memory 201. In other embodiments, some portion of thecontents and some, or all, of the components of the image processingunit 222 may be stored on and/or transmitted over the othercomputer-readable media 205. The components of the receiving device 118and image processing unit 222 preferably execute on one or more CPUs 203and facilitate the receiving, decoding, processing, selecting,recording, playback and displaying of programming, as described herein.The image processing unit 222 also facilitates receiving and storage ofpicture quality metadata, current video frame indications, andcorrective action rules, and communication with peripheral devices, viathe I/O devices 204 and with remote systems (e.g., the content provider104, the alternate video source server 122, the content server 106,and/or the information server 138) via the network connections 206.

Picture quality metadata may reside on the picture quality metadatarepository 215. This picture quality metadata may be metadata regardingexistence, character, type, identification and/or extent of picturequality issues of a video program being output by the receiving device118 for display on the presentation device 120 shown in FIG. 1. Forexample, the picture quality metadata may include information indicatingor identifying the existence of macroblocking or frozen video issues inthe video frames currently being output by the receiving device 118 fordisplay, or currently being displayed, on the presentation device 120shown in FIG. 1. This picture quality metadata may be received from aremote source, such as content provider 104, content server 106,information server 138 and/or alternate video source server 122 inresponse to the image processing unit 222 sending over communicationsystem 108 indications of which video program and which video frames ofthe program are currently being displayed on the presentation device120, or which video program and which video frames of the program arecurrently being output by receiving device 118 for display. Theseindications also include the corresponding video frame data or samplesof the video frame data currently being displayed. Such indications maybe stored or buffered in the current video frame indications repository216.

In some embodiments, the picture quality metadata may be generated bythe receiving device 118 itself. Whether generated by the receivingdevice 118 and/or a remote source, such as content provider 104, contentserver 106, information server 138 and/or alternate video source server122, such metadata may be generated by one or a combination of imageprocessing techniques. For example, in performing video freezedetection, the receiving device 118 or remote system in communicationwith the receiving device 118, such as content provider 104, contentserver 106, alternate video source server 122 or information server 138,compares the current frame with the previous one. If the two frames arethe same, then the process repeats until a specified number ofsimultaneous compares show identical frames. This process alsodistinguishes between user-initiated pause and true video freezes.

For macroblocking detection, the receiving device 118 or remote systemin communication with the receiving device 118, such as content provider104, content server 106, alternate video source server 122 orinformation server 138, uses edge and corner detection techniques todetect potential macroblocks. Note that macroblocks are squares ofincorrect or missing video so the process includes searching for imageswith multiple square objects and searching for perpendicular edges ofequal length. In some embodiments, the search is further refined bysearching for square objects with single or very similar color values(green squares, for example). The search finds multiple cases of squareobjects which are identical in shape to distinguish true macroblockingfrom normal video content with square objects.

The corrective action rules repository 217 stores rules, instructionsand/or options regarding, but not limited to, one or more of thefollowing: performing an action based on the received metadata thatresults in a corrective measure being taken to address the picturequality 120; under what circumstances and when an action is to beperformed based on the received metadata that results in a correctivemeasure being taken to address the picture quality 120; specific actionsto perform based on the received metadata; specific actions to performbased on the received metadata that results in a corrective measurebeing taken to address the picture quality 120; specific actions toperform based on options that may be provided to the user via a menu orother graphical user interface element; specific actions to performbased on user profiles; specific actions to perform based on userpreferences; specific actions to perform based on selections of when andthe order in which actions are to be performed that result in acorrective measure being taken to address a detected picture qualityissue; specific actions to perform based on which channels, programs andtimes have been selected for picture quality detection; specific actionsto perform based on which channels, programs and times have beenselected for actions that are to be performed that result in acorrective measure being taken to address a detected picture qualityissue; specific actions to perform based on selections of devices onwhich picture quality detection is to be performed; and specific actionsto perform based on selections of devices on which actions are to beperformed to address a detected picture quality issues.

Such rules stored in the corrective action rules repository 217 may beselected and set per user, saved in a corresponding user's profilestored in the corrective action rules repository 217, other datarepository 220 or remote system accessible via the receiving device 118.Such rules stored in the corrective action rules repository 217 may alsoor instead be part of a master user control system profile stored in thecorrective action rules repository 217, other data repository 220, orremote system accessible via the receiving device 118.

The current video frame indications may be collected by the imageprocessing unit or other programs 230 and communicated via the networkconnections 206 through the communication system 108 to the contentserver 106, the content provider 104, information server 138 and/oralternate video source server 122 to facilitate generation and receivingof the picture quality metadata of the video frames currently beingdisplayed on the presentation device 120. Also, the image processingunit 222 may interact via the communication system 108 with otherdevices. For example, the other device may be a home computing system(e.g., a desktop computer, a laptop computer, etc.) that includes or hasaccess to (e.g., via communication system 108) the functionality of thecontent provider 104, information server 138 and/or alternate videosource server 122. The corresponding picture quality metadata may havecome from the receiving device 118 or may have come from an externalsource.

Other code or programs 230 (e.g., an audio/video processing module, aprogram guide manager module, a Web server, and the like), andpotentially other data repositories, such as data repository 220 forstoring other data (user profiles, preferences and configuration data,etc.), also reside in the memory 201, and preferably execute on one ormore CPUs 203. Of note, one or more of the components in FIG. 2 may ormay not be present in any specific implementation. For example, someembodiments may not provide other computer readable media 205 or adisplay 202.

In some embodiments, the receiving device 118 and image processing unit222 include an application program interface (“API”) that providesprogrammatic access to one or more functions of the receiving device 118and image processing unit 222. For example, such an API may provide aprogrammatic interface to one or more functions of the image processingunit 222 that may be invoked by one of the other programs 230, thecontent provider 104, content server 106, information server 138,alternate video source server 122, or some other module. In this manner,the API may facilitate the development of third-party interfaces,plug-ins, adapters (e.g., for integrating functions of the imageprocessing unit 222 and information server 138 into desktopapplications), and the like, to facilitate the picture qualitymonitoring as described herein, including, for example, performingactions based on the picture quality metadata that results in acorrective measure being taken to address the picture quality 120.

In an example embodiment, components/modules of the receiving device 118and image processing unit 222 are implemented using standard programmingtechniques. For example, the image processing unit 222 may beimplemented as a “native” executable running on the CPU 203, along withone or more static or dynamic libraries. In other embodiments, thereceiving device 118 and image processing unit 222 may be implemented asinstructions processed by a virtual machine that executes as one of theother programs 230. In general, a range of programming languages knownin the art may be employed for implementing such example embodiments,including representative implementations of various programming languageparadigms, including, but not limited to, object-oriented (e.g., Java,C++, C#, Visual Basic.NET, Smalltalk, and the like), functional (e.g.,ML, Lisp, Scheme, and the like), procedural (e.g., C, Pascal, Ada,Modula, and the like), scripting (e.g., Perl, Ruby, Python, JavaScript,VBScript, and the like), or declarative (e.g., SQL, Prolog, and thelike). Various image, graphics, and video processing platforms,standards, encoding and decoding techniques and APIs may be utilizedaccordingly in the implementation of the components/modules of thereceiving device 118 and image processing unit 222. For example, ITU-RRecommendation BT.601 encoding, more commonly known by the abbreviationsRec. 601 or BT.601 (or its former name, CCIR 601) may be used forbroadcast stations, MPEG-4 may be used for online distribution of largevideos and video recorded to, MPEG-2 may be used for DVDs, Super-VCDs,and many broadcast television formats, MPEG-1 may be used for video CDs.Also available are H.261, H.263, H.264 encoding also known as MPEG-4Part 10, or as AVC, used for Blu-ray Discs and some broadcast televisionformats.

In a software or firmware implementation, instructions stored in amemory configure, when executed, one or more processors of the receivingdevice 118 to perform the functions of the image processing unit 222. Inone embodiment, instructions cause the CPU 203 or some other processor,such as an I/O controller/processor, to perform the actions of thereceiving device 118 and image processing unit 222 described herein. Forexample, this may include, but is not limited to, generating and/orreceiving metadata regarding picture quality issues of video framescurrently being displayed on the presentation device 120 and performingactions based on the metadata that results in a corrective measure beingtaken to address the picture quality. Some or all of the actions of thereceiving device 118 and image processing unit 222 described herein mayinstead or also be performed by a remote system such as, for example,the content provider 104, content server 106, information server 138,alternate video source server 122, or some other module.

The embodiments described above may also use well-known or othersynchronous or asynchronous client-server computing techniques. However,the various components may be implemented using more monolithicprogramming techniques as well, for example, as an executable running ona single CPU computer system, or alternatively decomposed using avariety of structuring techniques known in the art, including, but notlimited to, multiprogramming, multithreading, client-server, orpeer-to-peer, running on one or more computer systems, each having oneor more CPUs. Some embodiments may execute concurrently andasynchronously, and communicate using message passing techniques.Equivalent synchronous embodiments are also supported by the imageprocessing unit 222 implementation. Also, other functions could beimplemented and/or performed by each component/module, and in differentorders, and by different components/modules, yet still achieve thefunctions of the receiving device 118 and image processing unit 222.

In addition, programming interfaces to the data stored as part of thereceiving device 118 and image processing unit 222, can be available bystandard mechanisms such as through C, C++, C#, and Java APIs; librariesfor accessing files, databases, or other data repositories; scriptinglanguages such as XML; or Web servers, FTP servers, or other types ofservers providing access to stored data. The picture quality metadatarepository 215, corrective action rules repository 217, or current videoframe indications repository 216 may be implemented as one or moredatabase systems, file systems, or any other technique for storing suchinformation, or any combination of the above, including implementationsusing distributed computing techniques.

Different configurations and locations of programs and data arecontemplated for use with techniques described herein. A variety ofdistributed computing techniques are appropriate for implementing thecomponents of the illustrated embodiments in a distributed mannerincluding, but not limited to, TCP/IP sockets, RPC, RMI, HTTP, and WebServices (XML-RPC, JAX-RPC, SOAP, and the like). Other variations arepossible. Other functionality could also be provided by eachcomponent/module, or existing functionality could be distributed amongstthe components/modules in different ways, yet still achieve thefunctions of the image processing unit 222.

Furthermore, in some embodiments, some or all of the components of thereceiving device 118 and image processing unit 222 may be implemented orprovided in other manners, such as at least partially in firmware and/orhardware, including, but not limited to, one or moreapplication-specific integrated circuits (“ASICs”), standard integratedcircuits, controllers (e.g., by executing appropriate instructions, andincluding microcontrollers and/or embedded controllers),field-programmable gate arrays (“FPGAs”), complex programmable logicdevices (“CPLDs”), and the like. Some or all of the system componentsand/or data structures may also be stored as contents (e.g., asexecutable or other machine-readable software instructions or structureddata) on a computer-readable medium (e.g., as a hard disk; a memory; acomputer network, cellular wireless network or other data transmissionmedium; or a portable media article to be read by an appropriate driveor via an appropriate connection, such as a DVD or flash memory device)so as to enable or configure the computer-readable medium and/or one ormore associated computing systems or devices to execute or otherwiseuse, or provide the contents to perform, at least some of the describedtechniques. Some or all of the system components and data structures mayalso be stored as data signals (e.g., by being encoded as part of acarrier wave or included as part of an analog or digital propagatedsignal) on a variety of computer-readable transmission mediums, whichare then transmitted, including across wireless-based andwired/cable-based mediums, and may take a variety of forms (e.g., aspart of a single or multiplexed analog signal, or as multiple discretedigital packets or frames). Such computer program products may also takeother forms in other embodiments. Accordingly, embodiments of thisdisclosure may be practiced with other computer system configurations.

FIG. 3 is a flow diagram of a method 300 of picture quality monitoring,according to one example embodiment.

At 302, the receiving device 118 outputs video to a presentation device120 for display on the presentation device 120. The outputted videoincludes a plurality of video frames.

At 304, the receiving device 118, or a system remote from the receivingdevice 118, determines whether there exists a picture quality issue invideo frames that are currently being displayed on the presentationdevice 120 based on the video being output. This occurs in real timewhile the receiving device 118 is outputting the video to thepresentation device 120. If it is determined there does not exist apicture quality issue in video frames that are currently being displayedon the presentation device 120, then the process returns to 302, wherethe receiving device 118 continues to output video to a presentationdevice 120 for display on the presentation device 120. If it isdetermined there does exist a picture quality issue in video frames thatare currently being displayed on the presentation device 120, then theprocess returns to 306.

At 306, the receiving device 118, or a system remote from the receivingdevice 118, performs an action in response to the determination thatresults in a corrective measure being taken to address the picturequality issue. This is based on the determination made at 304 that thereexists a picture quality issue in video frames that are currently beingdisplayed on the presentation device 120. The process then returns to302, where the receiving device 118 continues to output video to apresentation device 120 for display on the presentation device 120.

FIG. 4 is a flow diagram of a method 400 of detecting a frozen framepicture quality issue in the method shown in the flow diagram of FIG. 3,according to one example embodiment. In particular, the method of FIG. 4is one example of how the method 300 of FIG. 3 may determine whetherthere exists a picture quality issue regarding a frozen video frame thatis currently being displayed on the presentation device 120.

At 402, the receiving device 118, or a system remote from the receivingdevice 118, compares a current frame being displayed on the presentationdevice 120 with an immediate previous frame that was displayed on thepresentation device 120.

At 404, the receiving device 118, or a system remote from the receivingdevice 118, determines, based on the comparison in 402, whether thecurrent frame being displayed is identical to the immediate previousframe that was displayed. If it was determined that the current framebeing displayed is not identical to the immediate previous frame thatwas displayed, the process returns to 402 where the receiving device118, or a system remote from the receiving device 118, continues tocompare the next frame currently being displayed on the presentationdevice 120 with the immediate previous frame that was displayed on thepresentation device 120. If it was determined that the current framebeing displayed is identical to the immediate previous frame that wasdisplayed, the process continues on to 406.

At 406, the receiving device 118, or a system remote from the receivingdevice 118, determines whether a specified number of consecutiveidentical frames have been detected as having been displayed. Forexample, in some embodiments, this may be 10, 20, 30, 40, 50 or 60frames, or any other number of frames. In other embodiments, thereceiving device 118, or a system remote from the receiving device 118,determines whether a specified number of consecutive identical frameshave been detected over a specified period of time, for example, 1, 2,3, 4 or 5 seconds, or any other specified period of time. If it wasdetermined that the specified number of consecutive identical frameshave not been detected as having been displayed, then the processreturns to 402 where the receiving device 118, or a system remote fromthe receiving device 118, continues to compare the next frame currentlybeing displayed on the presentation device 120 with the immediateprevious frame that was displayed on the presentation device 120. If itwas determined that the specified number of consecutive identical frameshave been detected as having been displayed, then the process continueson to 408.

At 408, the receiving device 118, or a system remote from the receivingdevice 118, records an indication that the picture quality issue is afrozen video frame. In various embodiments, this indication may be savedin the picture quality metadata repository 215 of the receiving device118, sent to a remote system in communication with the receiving device118, such as content provider 104, content server 106, alternate videosource server 122 or information server 138 and/or acted on inaccordance with the corrective action rules stored in the correctiveaction rules repository 217 to address the detected picture qualityissue. Also, the frame indications of the consecutive identical frameshave been detected as having been displayed may be stored in the currentvideo frame indications repository 216.

In some embodiments, the method 400 also distinguishes betweenuser-initiated pause and true video freezes. In particular, the method400 may also include recording the indication that the picture qualityissue is a frozen video frame only if it had been determined that thespecified number of consecutive identical frames detected were not theresult of a pause command. This may be accomplished, for example, by thereceiving device 118 tracking whether the pause command had beenactivated and was currently active when the identical frames weredetected at 404.

FIG. 5 is a table 500 illustrating example corrective measures to beperformed based on various picture quality issues, according to oneexample embodiment. The table 500 and/or the data represented in thetable 400, or portions thereof, may be stored on and/or generated by thereceiving device 118 and/or a remote system, such as the contentprovider 104, content server 106, alternate video source server 122 orinformation server 138 shown in FIG. 1 and FIG. 2. Table 500 shows someexample actions that may be performed that result in a correctivemeasure being taken to address a detected picture quality issue in theframes currently being displayed on the presentation device 120. Forexample, such actions may be those performed at 306 in the method ofpicture quality monitoring 300 shown in FIG. 3.

In particular, column 502 a indicates the picture quality issue that wasdetected. Column 502 b indicates the first corrective measure to beperformed for the particular corresponding picture quality issue thatwas detected as indicated in column 502 a. Column 502 c indicates thesecond corrective measure to be performed for the particularcorresponding picture quality issue that was detected as indicated incolumn 502 a if the corrective measure indicated in column 502 b was notsuccessful. Column 502 d indicates the second corrective measure to beperformed for the particular corresponding picture quality issue thatwas detected as indicated in column 502 a if the corrective measureindicated in column 502 c was not successful.

For example, the first corrective measure to be performed when thepicture quality issue that was detected is a frozen video frame 504 a isrestarting the decoder of the receiving device 118 as indicated incolumn 502 b. If restarting the decoder of the receiving device 118 wasnot successful to address the frozen video frame 504 a, then a requestmay be sent for the video to be re-sent to the receiving device 118 asindicated in column 502 c. Then, if re-sending the video to thereceiving device 118 was not successful to address the frozen videoframe 504 a, the receiving device 118 may switch to an alternate videosource, such as, for example, an on-demand source, other broadcastsource or other pre-recorded source for the video program, as indicatedin column 502 d.

As another example, the first corrective measure to be performed whenthe picture quality issue that was detected is macroblocking 504 b is,as indicated in column 502 b, switching to a standard definition channelcurrently broadcasting the same program in a standard definition format.If switching to a standard definition channel was not successful toaddress the macroblocking 504 b, then the decoder of the receivingdevice 118 will be restarted as indicated in column 502 c. If restartingthe decoder of the receiving device 118 was not successful to addressthe macroblocking 504 b, the receiving device 118 may switch to analternate video source, such as, for example, an on-demand source, otherbroadcast source or other pre-recorded source for the video program, asindicated in column 502 d.

The numbers, types, orders and combinations of corrective measures to beperformed as indicated in table 500 are examples. Various other numbers,types, orders and combinations of corrective measures to be performedmay also or instead be present in table 400 or otherwise performed. Invarious alternative embodiments, a combination of some correctivemeasures may be performed concurrently. For example, the decoder of thereceiving device 118 may be restarted concurrently with or otherwise inconjunction with requesting the video be re-sent.

FIG. 6 is a flow diagram of a method 600 of picture quality monitoringbased on received metadata regarding picture quality, according to oneexample embodiment.

At 602, the receiving device 118 outputs the video it generates to thepresentation device 120 for display on the presentation device 120.

At 604, the receiving device 118, while outputting the generated videoto the presentation device 120, sends indications of the video frameswhich are currently being displayed on the presentation device 120. Forexample, the receiving device 118 may send such indications to a remotesystem in communication with the receiving device 118, such as contentprovider 104, content server 106, alternate video source server 122 orinformation server 138.

At 606, the receiving device 118, in response to sending the indicationsof which video frames of the plurality of video frames are currentlybeing displayed on the presentation device, receives metadata regardingpicture quality of the video frames that are currently being displayedon the presentation device 120. For example, the receiving device 118may receive such metadata from a remote system in communication with thereceiving device 118, such as content provider 104, content server 106,alternate video source server 122 or information server 138.

At 608, the receiving device 118, in response to receiving the metadataregarding picture quality of the video frames of the plurality of videoframes that are currently being displayed on the presentation device120, performs an action based on the received metadata that results in acorrective measure being taken to address the picture quality. Forexample, in various embodiments, this action may cause one or more ofthe example corrective measures shown in table 500 of FIG. 5 to occur orother actions described herein to be performed to address the detectedpicture quality issue.

FIG. 7 is a flow diagram of a method 700 of picture quality monitoringincluding sending metadata regarding picture quality, according to oneexample embodiment.

At 702, the receiving device 118, or a system remote from the receivingdevice 118, receives an indication of which video program is currentlybeing displayed on a presentation device 120 and indications of whichvideo frames of the video program being displayed on the presentationdevice 120 are currently being displayed on the presentation device 120.These indications also include the corresponding video frame data orsamples of the video frame data currently being displayed. In otherembodiments, the receiving device 118 may receive the indications froman internal component of the receiving device 118, such as imageprocessing unit 222 shown in FIG. 2.

At 704, the receiving device 118, or a system remote from the receivingdevice 118, determines whether the video program currently beingdisplayed on the presentation device is included in the stored pluralityof video programs. This is based on the received indications of whichvideo program is currently being displayed on the presentation device.If it is determined that the video program currently being displayed onthe presentation device is not included in the stored plurality of videoprograms, the process proceeds to 710, where no metadata is sentregarding picture quality issues because there is no video data for thatparticular video program. If it is determined that the video programcurrently being displayed on the presentation device is included in thestored plurality of video programs, the process proceeds to 706.

At 706, the receiving device 118, or a system remote from the receivingdevice 118, compares the received indications of video frames currentlybeing displayed on the presentation device 120 to the stored pluralityof digital video frames of the stored video program included in thestored plurality of video programs.

At 708, the receiving device 118, or a system remote from the receivingdevice 118, based on the comparison, determines whether there exists apicture quality issue in video frames that are currently being displayedon the presentation device 120. If it is determined there is not apicture quality issue in video frames that are currently being displayedon the presentation device 120, the process returns to 702 to continueto receive the video frame indications. If it is determined there is apicture quality issue in video frames that are currently being displayedon the presentation device 120, the process proceeds to 712.

At 712, the receiving device 118, or a system remote from the receivingdevice 118, sends metadata regarding the determined picture qualityissues in the video frames that are currently being displayed on thepresentation device. For example, the receiving device 118 may send suchmetadata to, or receive such metadata from, a remote system incommunication with the receiving device 118, such as content provider104, content server 106, alternate video source server 122 orinformation server 138.

While various embodiments have been described hereinabove, it is to beappreciated that various changes in form and detail may be made withoutdeparting from the spirit and scope of the invention(s) presently orhereafter claimed. These and other changes can be made to theembodiments in light of the above-detailed description. In general, inthe following claims, the terms used should not be construed to limitthe claims to the specific embodiments disclosed in the specificationand the claims, but should be construed to include all possibleembodiments along with the full scope of equivalents to which suchclaims are entitled. Accordingly, the claims are not limited by thedisclosure.

1. An electronic picture quality monitoring system, comprising: at leastone processor; and a memory coupled to the at least one processor,wherein the at least one processor is configured to: output video to apresentation device for display on the presentation device, wherein theoutputted video includes a plurality of video frames; while outputtingthe video to the presentation device, determine whether there exists apicture quality issue in video frames that are currently being displayedon the presentation device based on the video being output; and based ona determined picture quality issue in video frames that are currentlybeing displayed on the presentation device, perform an action inresponse to the determination that results in a corrective measure beingtaken to address the picture quality.
 2. The system of claim 1 whereinthe picture quality issue is regarding macroblocking in the video framesthat are currently being displayed on the presentation device.
 3. Thesystem of claim 2 wherein the at least one processor is configured toperform the image analysis by being configured to use edge and cornerdetection techniques to detect potential macroblocks in video framesthat are currently being displayed on the presentation device.
 4. Thesystem of claim 2 wherein the at least one processor is configured toperform the image analysis by being configured to search in video framesthat are currently being displayed on the presentation device for imageswith multiple square objects.
 5. The system of claim 4 wherein the atleast one processor is configured to perform the search in video framesthat are currently being displayed on the presentation device for imageswith multiple square objects by being configured to search forperpendicular edges of equal length.
 6. The system of claim 2 whereinthe at least one processor is configured to perform the search in videoframes that are currently being displayed on the presentation device bybeing configured to search for images with square objects with the samecolor values.
 7. A method comprising: outputting, by a computerprocessor, video to a presentation device for display on thepresentation device, wherein the outputted video includes a plurality ofvideo frames; while outputting the video to the presentation device,determining, by a computer processor, whether there exists a picturequality issue in video frames that are currently being displayed on thepresentation device based on the video being output; and based on adetermined picture quality issue in video frames that are currentlybeing displayed on the presentation device, performing, by a computerprocessor, an action in response to the determination that results in acorrective measure being taken to address the picture quality.
 8. Themethod of claim 7 wherein the picture quality issue is regardingmacroblocking in the video frames that are currently being displayed onthe presentation device.
 9. The method of claim 8 wherein the performingthe image analysis includes using edge and corner detection techniquesto detect potential macroblocks in video frames that are currently beingdisplayed on the presentation device.
 10. The method of claim 8 whereinthe wherein the performing the image analysis includes searching invideo frames that are currently being displayed on the presentationdevice for images with multiple square objects.
 11. The method of claim10 wherein the searching in video frames that are currently beingdisplayed on the presentation device for images with multiple squareobjects includes searching for perpendicular edges of equal length. 12.The method of claim 8 wherein the performing the search in video framesthat are currently being displayed on the presentation device includessearching for images with square objects with the same color values. 13.A non-transitory computer-readable storage medium having computerexecutable instructions thereon, that when executed by a computerprocessor, cause the following method to be performed: outputting, by acomputer processor, video to a presentation device for display on thepresentation device, wherein the outputted video includes a plurality ofvideo frames; while outputting the video to the presentation device,determining, by a computer processor, whether there exists a picturequality issue in video frames that are currently being displayed on thepresentation device based on the video being output; and based on adetermined picture quality issue in video frames that are currentlybeing displayed on the presentation device, performing, by a computerprocessor, an action in response to the determination that results in acorrective measure being taken to address the picture quality.